package grupobbva.pe.operhc.util;

import static grupobbva.pe.operhc.util.Constant.*;
import grupobbva.pe.operhc.domain.Ingreso;
import grupobbva.pe.operhc.domain.Parametro;
import grupobbva.pe.operhc.domain.Producto;
import grupobbva.pe.operhc.service.ParametroService;

import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;

import org.apache.commons.lang.StringUtils;

public class PruebasMultiples {

	ParametroService parametros = null;

	public static void main(String[] args) {
		try {

			PruebasMultiples pruebasMultiples = new PruebasMultiples();
			// pruebasMultiples.calculoLimite("1480.20", "180", "0.109");
			// pruebasMultiples.operativizar();
			/*
			BigDecimal ingresoFijo = new BigDecimal(8000);
			BigDecimal ingresoVariable = new BigDecimal(400);
			BigDecimal ingresoTotal = ingresoFijo.add(ingresoVariable
					.multiply(new BigDecimal(0.85)));
			System.out.println(ingresoTotal.setScale(2, BigDecimal.ROUND_HALF_EVEN));
			
			pruebasMultiples.dummy();
			pruebasMultiples.limpiaArchivos();
			*/
			pruebasMultiples.calculoLimiteAjustado();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/*
	 * 
	 */

	public void calculoLimite(String cuota, String plazo, String tasa)
			throws Exception {
		System.out.println(parametros.calculoLimite(cuota, plazo, tasa));
	}

	public void operativizar() {

		List<Producto> listaProductos = parametros.getAllProducts();
		List<Ingreso> listaIngresos = parametros.getAllIncome();
		List<Parametro> listaParametros = parametros.getAllParameters();

		System.out.println(listaProductos);
		System.out.println(listaIngresos);
		System.out.println(listaParametros);

	}

	public void dummy() {
		/*
		System.out.println(parametros.getSubGerenteByUsuario("P016890"));
		System.out.println(parametros.getAllCanales());
		System.out.println(parametros.getSubGerenteByUsuario("P009790"));
		System.out.println(parametros.getAllSubCanales("01"));
		*/
		System.out.println(StringUtils.leftPad(new BigDecimal(800).toPlainString(), 14, "0"));
		System.out.println(Utilities.cadenaNumeroDecimal(new BigDecimal("500.00"), CIEN, DIGITOS_IMPORTE));
		Producto producto = new Producto();
		producto.asignarTasaPlazoCuota("14911501230048228061435203179", "CO");
		System.out.println("14911501230048228061435203179".length());
		System.out.println(producto);
	}
	
	public void limpiaArchivos() {
		PrintWriter writer;
		try {
			writer = new PrintWriter("D:\\petero.txt");
			writer.print("");
			writer.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	public void calculoLimiteAjustado() {
		double limiteReal   = 145049.93d;
		double limiteAjust  = Math.floor(limiteReal);
		//double restLimAjust = 0;
		limiteAjust = limiteAjust/1000;
		BigDecimal limite = new BigDecimal(limiteAjust);
		limite = limite.setScale(2, RoundingMode.CEILING);
		limiteAjust = limite.doubleValue()*1000;
		
		/*
		if(limiteAjust >= 10 && limiteAjust < 100){
			restLimAjust = limiteAjust % 10;
		}else if(limiteAjust >= 100){
			restLimAjust = limiteAjust % 100;
		}		
		limiteAjust = limiteAjust - restLimAjust;
		*/
		System.out.println(limiteAjust);
	}

}